ヘッダーをスキップ
Oracle TimesTen In-Memory Database C開発者およびリファレンス・ガイド
リリース7.0
E05164-03
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

SQL文の実行に対するタイムアウト値の設定

SQL文の実行がタイムアウトする時間を制御するには、ODBC関数のSQLSetStmtOptionまたはSQLSetConnectOptionのSQL_QUERY_TIMEOUTオプションを使用します。

TimesTenでは、DSN属性SqlQueryTimeoutを使用して、すべての接続に問合せタイムアウト値を指定できます。DSN仕様にSqlQueryTimeoutを設定すると、その値がデータ・ストアに対するその後のすべての接続のデフォルト値になります。接続から継承された可能性があるデフォルト値は、SQL_QUERY_TIMEOUTオプションを指定してSQLSetConnectOptionをコールすると上書きされます。同様に、接続から継承されたデフォルト値は、SQL_QUERY_TIMEOUTオプションを指定してSQLSetStmtOption をコールしても上書きされます。

SQL_QUERY_TIMEOUTでは、データ・ストアでSQL問合せが実行される制限時間(秒)を指定します。TimesTenでは、タイムアウト・トリガーが起動されると、実行中の問合せに対してタイムアウトが指示されます。タイムアウト・メッセージが問合せに達するまでにタイムラグが発生する可能性あるため、問合せが終了するまでの実際の時間は、タイムアウト・メッセージが問合せに達するまでにかかる時間と指定したタイムアウト値を加算した時間になります。

SQL_QUERY_TIMEOUTオプションは、SQL文がアクティブに実行されている場合にのみ動作します。処理のコミット中またはロールバック中にタイムアウトは発生しません。多数のUPDATE文、DELETE文またはINSERT文を実行するトランザクションでは、コミットまたはロールバックが完了するまでに時間がかかる場合があります。その間、タイムアウト値は無視されます。


注意: TimesTenで使用されるロック・タイムアウトとSQLQueryTimeout DSN属性は別々の機能であり、別の値を指定できます。TimesTenは、ロック・タイムアウト値およびSQLQueryTimeout値の両方を確認します。TimesTenは、すべてのスレッドを確認し、ロック・タイムアウトまたはSQLQueryTimeoutのいずれかが指定されているスリープ中のプロセスのスリープ状態を解除して、実行中のスレッドに適切なSQLQueryTimeout値を指定します。ロック・タイムアウト値およびSQLQueryTimeout値の両方が指定されている場合は、まず、2つの値の小さい方の値によってタイムアウトが発生します。